package com.biometric.core.support

import com.biometric.core.checker.SamsungFaceAuthChecker
import com.biometric.core.checker.FaceCapableChecker
import com.biometric.core.authenticator.impl.FaceAuthenticator

/**
 * 管理查看设备是否支持人脸识别、添加新的人脸支持检查规则
 */
object FaceSupportManager {
    private val FACE_CHECKERS: MutableList<FaceCapableChecker> = mutableListOf()

    init {
        registerChecker(SamsungFaceAuthChecker)
    }

    /**
     * 注册人脸识别支持规则。
     * 比如发现新的设备支持 人脸识别，可以编写特定的FaceAuthChecker 以支持该设备的人脸识别。
     * 否则没有被注册规则支持的设备无法正常调用[FaceAuthenticator]
     */
    fun registerChecker(checker: FaceCapableChecker) {
        FACE_CHECKERS.add(checker)
    }

    /**
     * 可以支持人脸验证的设备平台
     */
    fun isDeviceSupportFaceAuthentication(): Boolean {
        return FACE_CHECKERS.any { it.check() }
    }
}